package org.zx;

import java.lang.instrument.ClassFileTransformer;
import java.lang.instrument.Instrumentation;

/**
 * 在执行main函数前，先执行Agent中的代码
 * Agent的代码与你的main方法在同一个JVM中运行，并被同一个类加载器所加载，被同一的安全策略 和上下文所管理
 * 实现一个函数检测耗时Agent
 */
public class StaticAgent {

    public static void premain(String agentArgs, Instrumentation inst) {
        System.out.println("agentArgs in premain:" + agentArgs);
        System.out.println("this is an perform monitor agent.");
        // 添加 Transformer
        ClassFileTransformer transformer = new PerformMonitorTransformer();
        inst.addTransformer(transformer);
    }
}
